<template>
  <div class="dashboard-container">
    <div class="dashboard-editor-container" v-if="isAdmin">
      <panel-group @handleSetLineChartData="handleSetLineChartData" />

      <el-row style="background: #fff; padding: 16px 16px 0; margin-bottom: 32px;">
        <line-chart :chart-data="lineChartData" />
      </el-row>
      <!-- <el-row :gutter="32">
        <el-col :xs="24" :sm="24" :lg="8">
          <div class="chart-wrapper">
            <radar-chart />
          </div>
        </el-col>
        <el-col :xs="24" :sm="24" :lg="8">
          <div class="chart-wrapper">
            <pie-chart />
          </div>
        </el-col>
        <el-col :xs="24" :sm="24" :lg="8">
          <div class="chart-wrapper">
            <bar-chart />
          </div>
        </el-col>
      </el-row> -->
    </div>
    <div class="welcome">欢迎使用 {{ Settings.title }}</div>
  </div>
</template>

<script>
  import PanelGroup from './dashboard/PanelGroup';
  import LineChart from './dashboard/LineChart';
  import { mapGetters } from 'vuex';
  import Settings from '@/settings';
  // import RadarChart from '@/components/Echarts/RadarChart';
  // import PieChart from '@/components/Echarts/PieChart';
  // import BarChart from '@/components/Echarts/BarChart';

  const lineChartData = {
    newVisitis: {
      expectedData: [100, 120, 161, 134, 105, 160, 165],
      actualData: [120, 82, 91, 154, 162, 140, 145],
    },
    messages: {
      expectedData: [200, 192, 120, 144, 160, 130, 140],
      actualData: [180, 160, 151, 106, 145, 150, 130],
    },
    purchases: {
      expectedData: [80, 100, 121, 104, 105, 90, 100],
      actualData: [120, 90, 100, 138, 142, 130, 130],
    },
    shoppings: {
      expectedData: [130, 140, 141, 142, 145, 150, 160],
      actualData: [120, 82, 91, 154, 162, 140, 130],
    },
  };

  export default {
    name: 'Dashboard',
    components: {
      PanelGroup,
      LineChart,
      // RadarChart,
      // PieChart,
      // BarChart,
    },
    computed: {
      ...mapGetters(['roles']),
    },
    data() {
      return {
        lineChartData: lineChartData.newVisitis,
        isAdmin: false,
        Settings,
      };
    },
    watch: {
      roles() {
        this.checkRoles();
      },
    },
    mounted() {
      this.checkRoles();
    },
    methods: {
      checkRoles() {
        this.isAdmin = this.roles.includes('admin');
      },
      handleSetLineChartData(type) {
        this.lineChartData = lineChartData[type];
      },
    },
  };
</script>

<style rel="stylesheet/scss" lang="scss" scoped>
  .dashboard-editor-container {
    padding: 32px;
    background-color: rgb(240, 242, 245);
    position: relative;

    .chart-wrapper {
      background: #fff;
      padding: 16px 16px 0;
      margin-bottom: 32px;
    }
  }

  @media (max-width: 1024px) {
    .chart-wrapper {
      padding: 8px;
    }
  }

  .welcome {
    text-align: center;
    padding: 50px 0;
  }
</style>
